package com.bocloud.cmp.interfaces.app.resource;

import com.bocloud.common.model.BsmResult;

/**
 * @author Zaney
 * @param <LogWatch>
 * @data:2017年3月9日
 * @describe:页面数据统计业务逻辑层
 */
public interface StatisticAppService {
	/**
	 * 获取页面数据统计
	 * 
	 * @param clusterProxyIp
	 * @param clusterUsername
	 * @param clusterPassword
	 * @return
	 */
	public BsmResult total(Long clusterId);

	/**
	 * 获取资源列表
	 * 
	 * @param clusterIp
	 * @param clusterProxyIp
	 * @param clusterUsername
	 * @param clusterPassword
	 * @param resourceType
	 * @return
	 */
	public BsmResult resourceList(String resourceType, String resourceName, Integer page, Integer rows, Long appId, Long proxyId);

	/**
	 * 获取资源详情
	 * 
	 * @param clusterProxyIp
	 * @param clusterUsername
	 * @param clusterPassword
	 * @param resourceType
	 *            资源类型
	 * @param clusterIp
	 * @param namespace
	 *            工作空间：获取资源详情的时候需要
	 * @param resourceName
	 *            比如某个pod 或某个service 等的名称，用于获取资源详情的时候需要
	 * @return
	 */
	public BsmResult detail(String resourceType, String namespace, String resourceName, Long proxyId);

	/**
	 * 获取资源事件
	 * 
	 * @param clusterProxyIp
	 * @param clusterUsername
	 * @param clusterPassword
	 * @param namespace
	 * @param resourceType
	 * @param resourceName
	 * @return
	 */
	public BsmResult event(String namespace, String resourceType, String resourceName, Long proxyId);

	/**
	 * 获取日志信息
	 * @param namespace
	 * @param resourceName
	 * @return
	 */
	public BsmResult getLog(String namespace, String resourceName, String containerName, String status, Long proxyId);
	/**
	 * 获取节点下的pod
	 * @param proxyId
	 * @param nodeName
	 * @return
	 */
	public BsmResult getNodePod(Long proxyId, String nodeName);

	/**
	 * 获取游离状态下的pod
	 * 
	 * @param proxyId
	 * @param nodeName
	 * @return
	 */
	public BsmResult getBarePod(Long proxyId, String nodeName);
}
